#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
double q;
int n;
int w[50];
int dp[4000010];
int main(void){
    //freopen("data.txt","r",stdin);
    while(~scanf("%lf%d",&q,&n) && n){
        memset(w,0,sizeof(w));
        memset(dp,0,sizeof(dp));
        int cnt=0;
        for(int i=0;i<n;i++){
            int num;
            scanf("%d",&num);
            char t;
            double x;
            int sum=0;
            int flag=0;
            int ta=0;
            int tb=0;
            int tc=0;
            for(int j=0;j<num;j++){
                scanf(" %c:%lf",&t,&x);
                //printf("%c---%lf\n",t,x);
                x=(int)(x*100);
                if(!flag){
                    if(t=='A'){
                        ta+=x;
                        if(ta>60000){
                            flag=1;
                        }
                    }
                    else if(t=='B'){
                        tb+=x;
                        if(tb>60000){
                            flag=1;
                        }
                    }
                    else if(t=='C'){
                        tc+=x;
                        if(tc>60000){
                            flag=1;
                        }
                    }
                    else{
                        flag=1;
                    }
                }
            }
            sum=ta+tb+tc;
            if(sum>100000){
                flag=1;
            }
            if(!flag){
                w[cnt++]=sum;
            }
        }
        for(int i=0;i<cnt;i++){
            for(int j=(int)(q*100);j>=w[i];j--){
                dp[j]=max(dp[j],dp[(int)(j-w[i])]+w[i]);
            }
        }
        printf("%.2lf\n",dp[(int)(q*100)]*1.0/100);
    }
    return 0;
}
